XHydro UML - Dokumentation
Inhaltsverzeichnis
3 Abbildung UML-Bezeichnung zu XML-Schema-Elementname
Abbildungsverzeichnis
Abbildung 1: UML - Diagramm des Modells
Abbildung 2: Modell des Zeitreihenkerns
Abbildung 8: Gegenüberstellung UML-Bezeichnung zu XML-Schema-Elementname
Abbildung 9: UML-Diagramm mit XML-Elementnamen
„XHydro“ ist ein XML - Schema
[1], welches für die
Belange der Datenübertragung im hydro¬logischen Messnetz der Wasser- und
Schifffahrtsverwaltung konzipiert wurde.
Im Folgenden wird die Struktur von XHydro (Version 1.3) anhand eines UML -
Modells [2]
dargestellt.
Bei der Entwicklung des XML - Schemas wurde zunächst ein generisches UML -
Modell ent¬worfen, von dem anschließend das hier beschriebene fachliche
Konstrukt abgeleitet wurde. Basierend auf diesem Modell wurde dann das XML -
Schema XHydro generiert.[a]
Durch den modularen Aufbau des XML - Schemas ist es leicht möglich, Anpassungen
für andere fachliche Anforderungen, z.B. durch Austausch von Codelisten,
vorzunehmen. Die einzelnen in diesem Modell ent¬haltenen Metadaten sind
spezifisch für hydrologische Zeitreihen. Der Kern des Modells ist jedoch
unabhängig von der Anwendungsdomäne und kann für verschiedene Typen von
Zeitreihen wiederverwendet werden. Durch diese Flexibilität wird zudem
erreicht, dass für die Datenübertragung im Messnetz ein weniger umfangreiches
Schema verwendet werden kann als bei Datenarchivierungen oder beim
Datenaustausch aus Datenbanken. Zudem wurde das XML - Schema, in Ergänzung zum
UML - Modell so gestaltet, dass es sich fast beliebig um fachspezifische
Elemente erweitern lässt. Das XML - Schema wird in [3]
dokumentiert.
Abbildung 1: UML - Diagramm des Modells [b]
Die Elemente des Modells lassen sich 2 Hauptgruppen
zuordnen:
• Zeitreihenkern
• Metadaten
Der Zeitreihenkern, in obiger Abbildung sind dies die blau dargestellten
Elemente, bildet im Wesentlichen das grundsätzliche Konzept von Zeitreihen ab,
d.h. die Zuordnung von Werten zu einem bestimmten Zeitpunkt.
Die rot und grün dargestellten Elemente sind weitergehende Merkmale. Diese
Metadaten beschreiben die Zeitreihe und schaffen die Voraussetzung zur
korrekten Interpretation der Daten bzw. deren Einordnung in einem Zeitreihen-Informationssystem.
Das Modell erlaubt mehrere
Zeitreihen in einer Liste zusammenzufassen. Jede Zeitreihe besitzt dabei im
Kern jeweils die Elemente timeSeriesList,
timeSeries,
exchangeIs,
exchangeId,
data, timedDataElement, timeStamp, values, dataValue und ggf. isochron.
Abbildung 2: Modell des Zeitreihenkerns
Das Element timeSeriesList
ist das Root - Element und verweist auf ein oder mehrere Zeitreihenelemente.
Das Zeitreihenelement timeSeries
enthält ein data-Element
mit einer Liste aus einem oder mehreren timedDataElement
- Objekten. Jedes timedDataElement
- Objekt besteht aus einem Zeitstempel timeStamp
- und einem values
- Element.
Das values -
Objekt kann ein oder, zum Zweck einer kompakten Kodierung, mehrere dataValue - Elemente
beinhalten. Dies entspricht im logischen Aufbau einer Tabelle mit einer
Zeitstempel- und einer oder mehreren Messwert-Spalten; jede Tabellenzeile
entspricht hierbei einem timedDataElement
- Objekt.
Das ggf. vorhandene Element isochron
zeigt an, in welchem zeitlich äqui¬distanten Abstand zueinander die Daten
vorliegen, sowie zu welchem Zeitpunkt die Zeitreihe beginnt. Dies ermöglicht
eine kompakte Darstellung, indem auf die Angabe expliziter Zeitstempel für
jeden einzelnen Wert verzichtet werden kann. Der Zeitstempel jedes Wertes
berechnet sich in solch einem Fall aus seiner Position in der Zeitreihe und dem
Zeitinkrement (duration)
sowie dem Startzeitpunkt (startTimeStamp).
Für den Austausch von Zeitreihen ist es sinnvoll, diese jeweils mit einem eineindeutigen
Identifikator zu kennzeichnen. Dies vereinfacht die Zuordnung der Daten und den
Import in ein Zeitreihen-Informationssystem. In Version 1.3 des XML - Schemas
werden hierzu im exchangeID
- Element sog. Universally Unique Identifier [4]
(UUID, hier nach Version
4) verwendet.
Abbildung 3: Datentypen
Daten hydrologischer Zeitreihen können von ganz unterschiedlichem Typ sein. Das Modell bietet die hierbei benötigten Datenformate an. Messwerte können als Flie߬komma- (dFloatValue) oder Ganzzahlen (dIntegerValue) dargestellt werden. Ja/Nein - Aussagen, wie Zustände an Anlageteilen, lassen sich mittels des logischen Typs (dBoolValue) und Logbucheinträge in Form von Zeichenketten (dStringValue) speichern. Komplexere binäre Datenobjekte sind mittels des Datentyps dBinaryValue kodierbar, wobei das Unterelement mimetype [5] spezifiziert, um welche Art von Datenobjekt (z.B. image/JPEG, video/mp4, application/pdf, audio/mpeg) es sich handelt.
Metadaten beschreiben die jeweilige Zeitreihe und liefern
Informationen zu folgenden Kategorien:
• Herkunft der Daten
• Art der Daten
• Qualität der Daten
Das Modell benutzt hierzu u.a. mehrere Codelisten, welche jeweils aus einer
vor¬gegebenen Menge von Einträgen bestehen, die sich jederzeit erweitern
lassen. Die konkrete technische Umsetzung des Erweiterungsmechanismus ist im
XML - Modell beschrieben.
Im Modell kann die Herkunft der Daten sowohl über eine informelle Beschreibung des Messgeräts und/oder der Örtlichkeit erfolgen, als auch durch präzise Angabe der Messposition. Darüber hinaus kann beschrieben werden, von welcher Organisation / Institution die Daten stammen.
Abbildung 4: Datenherkunft
Das Element device
kann hierbei zur Beschreibung des Messgerätes bzw. Sensors sowie der
verwendeten Systemuhr verwendet werden. Angaben zum Messort[c]
als auch zum Installationsort des Sensors / der Systemuhr liefert location, wobei
dieses Element entweder nur eine informelle Beschreibung in locationDescription
beinhaltet oder diese um eine 2D- bzw. 3D- Ortsangabe incl. Nennung des verwendeten
Referenzsystems ergänzt.[d]
Diese Metadaten können individuell jedem einzelnen Messwert und/oder global der
gesamten Zeitreihe zugeordnet werden.
Das Element organization
beschreibt die Zugehörigkeit der Zeitreihen zur Organisation / Institution
welche die Daten gemessen oder berechnet hat.
Die Art der Daten wird beschrieben durch:
• Messgröße
• Maßeinheit
• Bildungsregel
Die Messgröße wird durch die
drei Codelisten parameter,
category und
unit
beschrieben.
Abbildung 5: Datenarten
Das parameter - Objekt beschreibt, um welche Messgröße es sich handelt. Vordefinierte Parameter sind z.B. W für Wasserstand, Q für Abfluss und T_W für Wassertemperatur. Das category - ähnelt dem parameter - Objekt, hier wird aber nur die Hauptkategorie der Messgröße spezifiziert (z.B. temperature für den Parameter W_T).
Das Attribut unit beschreibt die physikalische Maßeinheit der Messgröße. Die vordefinierte Codeliste orientiert sich am „Unified Code for Units of Measure“ - Dokument [6] und benutzt die „case sensitive“ - Schreibweise. Weitere, d.h. nicht vordefinierte Bezeichner können entsprechend dieser Nomenklatur verwendet werden.
Abbildung 6: Bildungsregel
Durch diese Bildungsregel-bezogenen Codelisten wird
beschrieben, wie der Wert entstanden ist.
Der Parameter dataTypeCode
beschreibt die Bildungsregel des Messwertes:
contData |
kontinuierlich (isochron oder zeitl. unregelmäßig) gemessen |
contTotal |
kontinuierlich integrierte oder hochgezählte Werte |
eventData |
ereignisgesteuerte Messung |
instData |
Instantanwert (d.h. keine Aggregation mehrerer Werte) |
aggMax |
höchster Messwert eines Beobachtungsintervalls |
aggMin |
niedrigster Messwert eines Beobachtungsintervalls |
aggMean |
Mittelwert aller Messwerte eines Beobachtungsintervalls |
aggMovingMean |
gleitender Mittelwert aller Messwerte eines Beobachtungsintervalls |
aggMedian |
Medianwert aller Messwerte eines Beobachtungsintervalls |
aggStdDev |
Standardabweichung aller Messwerte eines Beobachtungsintervalls |
“cont”
bedeutet, dass Messwerte kontinuierlich, isochron oder in zeitlich
unregelmäßiger Folge, gemessen werden.
”event”
bedeutet, dass Messwerte ereignisgesteuert, typischerweise bei Über- bzw.
Unterschreitung fester Schwellwerte, oder bei Überschreitung einer kritischen
Messwertveränderung gemessen werden.
“agg” bedeutet,
dass über einen gegebenen Zeitraum mehrere Messungen erfolgen, woraus eine
aggregierte Größe gebildet wird.
Nähere Informationen zum Aggregationsprozess liefert das
Element aggregation,
seine Attribute sind:
Frequency |
beschreibt die Frequenz
mit der (Zwischen-) Messwerte ermittelt werden; |
Interval |
gibt das
Aggregationsintervall an, d.h. die Zeitspanne für die der Messwert |
Offset |
gibt an, mit welchem
zeitlichen Offset (zur jeweils nächstgrößeren Zeiteinheit) |
Level |
beschreibt im Falle
einer ereignisgesteuerten Zeitreihe den Schwell- |
Das Element timeStampPosition
beschreibt die Position des Zeitstempels im Zeitintervall, d.h. ob der
Zeitstempel den Beginn (begin),
das Ende (end)
oder die Mitte (middle)
des Zeitintervalls markiert.
Abbildung 7: Qualitätsangaben
Das Modell sieht Qualitätsangaben sowohl für den Messwert als auch den Zeitstempel vor, wobei das Element measurementInaccuracy eine quantitative Angabe zur Messunsicherheit [7] enthalten kann. Die Qualität des Messwertes bzw. des Zeitstempels kann darüber hinaus auch durch einen Kommentar beschrieben werden. Die Codelisten dataValueQualityRemark bzw. timeStampQuality enthalten hierzu entsprechende Standardkommentare, wobei sich auch diese Codelisten jederzeit erweitern lassen.
XML-Schema-Element |
Bedeutung |
|
(nicht in UML modelliert) |
ext |
Erweiterungselement, bietet an vielen Stellen die Möglichkeit beliebige Zusatzinformationen hinzuzufügen |
aggregation |
ag |
Informationen über den Aggregationsprozess |
category |
c |
Hauptkategorie des
Messwertes |
category |
xc |
Hauptkategorie des
Messwertes |
content |
b |
Binär kodierter Wert |
dAnyValue |
va |
Selbst definierter
Datentyp |
data |
d |
Enthält alle timedDataElement / <tde> -Elemente der Zeitreihe |
dataType |
dt |
Information ob und ggf. welche aggregierte Größe vorliegt |
dataTypeCode |
dtc |
Informationen wie der
Messwert gebildet wurde |
dataTypeCode |
xdtc |
Informationen wie der
Messwert gebildet wurde |
dataValue |
v |
Enthält die Messgröße und die Qualitätsangaben |
dataValueQuality |
vq |
Informationen zur Messunsicherheit und besonderen Mess-Umständen |
dataValueQualityRemark |
vqr |
Informationen über
besondere Mess-Umstände |
dataValueQualityRemark |
xvqr |
Informationen über besondere
Mess-Umstände |
dBinaryValue |
vbin |
Binär kodierter Wert |
dBoolValue |
vb |
Boolscher Wert |
dDescription |
dd |
Beschreibung (textlich, informell) des Messgeräts/Sensors oder der Systemuhr |
device |
pd |
Informationen zum Messgerät/Sensor |
device |
tsd |
Informationen zur System-Uhr |
dFloatValue |
vf |
Gleitkomma-Wert |
dIntegerValue |
vi |
Ganzzahlen-Wert |
distance |
dst |
Zeitlicher Abstand zwischen
den Messwerte |
dName |
dn |
Bezeichnung des Messgeräts/Sensors oder der Systemuhr |
dStringValue |
vs |
Freitext-Wert |
exchangeId |
xid |
Zeitreihen-Bezeichner |
exchangeIds |
xids |
Liste mit einem oder (bei Multiparameter-Zeitreihe) mehreren Zeitreihenbezeichnern |
frequency |
f |
Frequenz mit der (Zwischen-) Messwerte ermittelt werden, angegeben wird der zeitliche Abstand |
geoReference |
(im Schema nicht als Element modelliert) |
Code für das verwendete Koordinatenbezugssystem, und textlich informeller Ortsbeschreibung |
interval |
it |
Aggregationsintervall, d.h. die Zeitspanne für die der Messwert repräsentativ ist |
isochron |
iso |
Informationen zu
Messzeitpunkten mit Startzeitpunkt und zeitl. Abstand |
lDescription |
ld |
Ortsbeschreibung (informell, textlich) |
level |
l |
Schwell- oder Deltawert dessen Über- bzw. Unterschreitung (im Falle einer ereignisgesteuerten Zeitreihe) eine Messwertspeicherung triggert. |
lName |
ln |
Ortsbezeichnung (informeller Name) |
location |
dl |
Ortsbezug für das
Messgerät |
location |
tl |
Ortsbezug für die
Messgröße |
location |
vl |
Ortsbezug für die
Messgröße |
locationDescription |
ldn |
Informationen zur
Ortsangabe |
measurementInaccuracy |
vmi |
Unsicherheit des Messwerts |
measurementInaccuracy |
tsmi |
Unsicherheit des Zeitstempels |
mimetype |
mt |
Datenformat einer
binären Größe |
oDescription |
od |
Beschreibung (textlich, informell) der Organisation die die Zeitreihe ermittelt hat |
offset |
ot |
Zeitlicher Offset (zur
jeweils nächstgrößeren Zeiteinheit) mit der das Messintervall beginnt. |
oName |
on |
Name der Organisation, welche die Zeitreihe ermittelt hat |
organization |
org |
Informationen zur Organisation/Institution welche die Zeitreihe ermittelt hat |
parameter |
p |
Art der Messgröße |
parameter |
xp |
Art der Messgröße |
parameterMetaData |
pmd |
Informationen zum Typ der Zeitreihe |
parameterMetaDataList |
pmdl |
Liste mit Informationen zum Typ der Zeitreihen |
point |
(im Schema nicht als Element modelliert) |
Ortsangabe |
point3D |
pt3d |
3D-Ortsangabe |
pt |
pt |
2D-Ortsangabe |
px |
px |
Rechtswert-Koordinate |
py |
py |
Hochwert-Koordinate |
pz |
pz |
Höhen-Koordinate |
referenceSystem |
rs |
Koordinatenbezugssystem |
referenceSystem |
xrs |
Koordinatenbezugssystem |
timedDataElement |
tde |
Enthält einen oder mehrere Messwerte und optional (falls keine 'isochron-Zeitreihe') einen Zeitstempel |
timeSeries |
tse |
Zeitreihe |
timeSeriesList |
tsel |
Liste mit einer oder mehreren Zeitreihen |
timeStamp |
sts |
Startzeitpunkt der Zeitreihe |
timeStamp |
ts |
Zeitstempel für einen Wert |
timeStampMetaData |
tsmd |
Qualitätsangaben zum
Zeitstempel, |
timeStampPosition |
tsp |
Position des
Zeitstempels im Zeitintervall |
timeStampPosition |
xtsp |
Position des
Zeitstempels im Zeitintervall |
timeStampQuality |
tsq |
Qualitätsangaben zum
Zeitstempel, |
timeStampQualityRemark |
tsqr |
Qualitätsbezeichner zum
Zeitstempel |
timeStampQualityRemark |
xtsqr |
Qualitätsbezeichner zum
Zeitstempel |
tsValue |
tsv |
Zeitstempel-Wert |
unit |
u |
Maßeinheit der
Messgröße |
unit |
xu |
Maßeinheit der
Messgröße |
UUID |
uuid |
ID der Zeitreihe |
value |
(im Schema nicht als Element modelliert) |
Enthält einen der
folgenden Werte-Objekte: |
values |
vls |
Enthält einen oder mehrere Messwerte |
Abbildung 8: Gegenüberstellung UML-Bezeichnung zu XML-Schema-Elementname
Abbildung 9: UML-Diagramm mit XML-Elementnamen
[1] Wikipedia:
XML Schema
https://de.wikipedia.org/wiki/XML_Schema
[2] Wikipedia:
Unified Modeling Language
https://de.wikipedia.org/wiki/Unified_Modeling_Language
[3] Bundesanstalt für Gewässerkunde:
Schema Dokumentation
http://www.xhydro.org/dokumentation.html
[4] Wikipedia:
Universally Unique Identifier
https://de.wikipedia.org/wiki/Universally_Unique_Identifier
[5] Iana.org
Media types
http://www.iana.org/assignments/media-types/media-types.xhtml
[6] Gunther
Schadow and Clement J. McDonald:
The Unified Code for Units of Measure
http://unitsofmeasure.org
[7] Wikipedia
Messunsicherheit
http://de.wikipedia.org/wiki/Messunsicherheit
[a] Da die von UML-Werkzeugen automatisch generierten XML-Schemata die Anforderungen hinsichtlich Modularität und Wiederverwendbarkeit nicht erfüllten, erfolgte diese Umsetzung manuell.
[b] Das UML - Modell enthält nicht die kompletten Codelisten, diese sind erst im XML - Schema vollständig. Auch die Erweiterbarkeit um Anwendungs- bzw. Nutzer- spezifische Elemente ist im UML - Entwurf noch nicht enthalten.
[c] Der Messort ist die Örtlichkeit, für die die physikalische Größe bestimmt werden soll.
[d] Zwar kann das location - Element nur entweder ein locationDescription- oder ein point- Element enthalten. Da aber locationDescription eine Basisklasse von point darstellt, ist die Möglichkeit zur informellen Ortsbeschreibung immer gegeben.